
14.12.2014, 21:50
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
массив POST-ом из PHP в Javascript методом ajax Jquery
Здравствуйте!
Суть задачи:
Получить переменные из PHP массивом методом ajax используя библиотеку JQuery.
есть файлы:
inex.htm
vars.js
res.php
в vars.sj написано следующее:
$(document).ready(function () {
$('#btn').on('click',function(){
$.ajax({
type: "POST",
url: "res.php",
data: "foo=bar", //передаю переменную "foo" со значением "bar"
beforesend: $('#content').html('Загрузка'),
success: function(){
//тут функция обработки ответа из php
//php получил переменную сделал какое-то действие и вернул
//переменную "foo" но уже со значением "bar2"
// теперь нужно какой-нибудь переменной присвоить это значение "bar2"
}
});
});
});
как получить массив из post методами JQuery или чистым JS?
или с PHP прислать строку и разбить её на массивы?
хотелось бы как-нибудь реализовать первый вариант.
Есть ли в JS такие переменные для работы с POST массивом как на подобии с $_POST в PHP?
Последний раз редактировалось Dtri, 14.12.2014 в 22:00.
|
|

14.12.2014, 22:27
|
 |
Профессор
|
|
Регистрация: 22.03.2012
Сообщений: 3,744
|
|
Сообщение от Dtri
|
как получить массив из post методами JQuery или чистым JS?
или с PHP прислать строку и разбить её на массивы?
хотелось бы как-нибудь реализовать первый вариант.
Есть ли в JS такие переменные для работы с POST массивом как на подобии с $_POST в PHP?
|
почитай доку и про json
|
|

14.12.2014, 22:41
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Rise,
например я
я послал через ajax что-то на адрес "/какой-то_урл"
$.ajax({
type: "POST",
url: "/какой-то_урл",
data: "foo=bar",
success: function(){
// и хочу получить оттуда переменные
// напримаер: на той стороне мне выдают array(
key => value,
key2 => value2,
key3 => value3,
...
)
// и я хочу эти значения связать с какими-то переменными в Яве
// keyJS = value (keyJS = array[key])
// вот как воплотить эту идею?
}
|
|

14.12.2014, 23:56
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Rise,
в вашем примере вы используете функцию Post
$.post("script.php", { x: x, id: id }, onAjaxSuccess, "json");
function onAjaxSuccess(data) {
// data.x
// data.id
}
насколько я знаю это не полная функция от ajax.
можно ли вот так описать то же действие приведённое вами выше?
$.ajax({
type: "POST",
url: "script.php",
data: { x: 'x', id: 'id' },
success: function(){
// data.x
// data.id
}
});
Будет ли это одно и тоже?
дальше я чтобы обратиться к переменным использую:
$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});
правильно ли я делаю?
весь вид скрипта у меня выглядит так:
$.ajax({
type: "POST",
url: "script.php",
data: { x: 'x', id: 'id' },
success: function(){
$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});
}
});
Последний раз редактировалось Dtri, 15.12.2014 в 00:01.
|
|

15.12.2014, 00:38
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Rise,
Зрительно наглядней.
читабельней. Сугубо субъективно.
Вы не ответили.
$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});
правильно ли я делаю?
и есть ли способ получить не json а скажем text/html
например функция разбора строки вида:
name=vasia$surname=petrov
есть ли для данной задачи функция аналогичная $.getJSON?
|
|

15.12.2014, 00:53
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 457
|
|
Dtri, $.post и $.getJSON, особое внимание обратить на "This is a shorthand Ajax function, which is equivalent to:"
|
|

15.12.2014, 01:22
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Rise,
понял. спасибо.
ещё вопрос. немного в сторону. Я уже пол дня ищу на просторах интернета и не нашёл ничего вразумительно объясняющего хотябы в какую сторону смотреть.
Пример из практики.
по адресу /isSuccess мне передают переменную JSON. Но именно get-ом.
хочу воплотить метод взаимодействия компонентов REST
Передавать POST-ом а принимать get-ом. как это можно реализовать?
Если сформулировать коротко:
То при заполнении формы и нажатии на кнопку submit.
нужно передать её на сервер в виде POST запроса.
сервер сделает операции.
и выдаст ответ в виде GET запроса.
На стороне клиента нужно принять этот запрос, вывести его в строку браузера и разбить его на переменные.
для дальнейших действий на стороне клиента.
или если я правильно понимаю:
$.post("post.php", onAjaxSuccess, "json");
function onAjaxSuccess(data) {
alert(data.x) ;
alert(data.id) ;
}
эти "x" и "id" и так get-ом возвращаются?
или же в REST имеется в виду. что если я хочу внести в базу что-то то должен тогда сделать:
$.ajax({
type: "POST", //выбираю post для отправки
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(){
// жду от сервера код 201 (created)
}
});
а если хочу просто получить что-то, то:
$.ajax({
type: "GET", //выбираю post для отправки
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(data){
data.x
data.y
// получаю соответсвено что просил.
}
});
Разъясните если вам не трудно. Запутался в информации.
Последний раз редактировалось Dtri, 15.12.2014 в 03:13.
|
|

16.12.2014, 20:24
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Rise,
Извините за долгий ответ. Я не заметил что появилась вторая страница в теме.
Сообщение от Rise
|
Dtri, а что за "компоненты" у вас и какие "взаимодействия" вы хотите реализовать между ними?
|
Я о стандарте REST/
и о любых взаимодействиях с сервером.
К примеру в стандарте говорится что:
отправлять данные нужно POST-ом
Принимать GET-ом
Изменять PUT-ом
удалять DELETE-ом
Я пытаюсь понять. Чтобы принять данные по этому стандарту я получается должен написать следующую функцию (если использую JQuery)
$.ajax({
type: "GET",
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(data){
data.x
data.y
// получаю соответсвено что просил.
}
});
Тоесть в type указываю GET
или же не важно что я укажу в type, и ответ всёравно придёт в GET формате?
Последний раз редактировалось Dtri, 16.12.2014 в 21:25.
|
|

17.12.2014, 18:09
|
Аспирант
|
|
Регистрация: 14.12.2014
Сообщений: 86
|
|
Сообщение от Rise
|
Dtri, не с того вы начали, реализация REST начинается с сервера. Что за веб-сервис то хотите сделать?
|
Сервис:
запись в базу.
поиск в базе. и вывод клиенту.
редактирование записей базы.
удаление записей.
Стандартное вэб приложение.
|
|
|
|